package com.shm.city58;

import java.util.*;


public class Solution2 {
    /**
     * 
     * @param num int整型 非负整数 num
     * @return int整型一维数组
     */
    public int[] countBits (int num) {
        // write code here
        int[] is = new int[num+1];
        for (int i = 0; i <= num; i++) {
            is[i]=getCount(i);
        }
        return is;
    }

    public int getCount(int i){
            int res = 0;
            while (i!=0){
                res+=i&1;
                // 将二进制数字 nn 无符号右移一位（ Java 中无符号右移为 ">>>" ）
                i>>>=1;
            }
        return res;
    }

    public int getCount_2(int i){
        int res = 0;
        while (i!=0){
            res++;
            i&=i-1;
        }
        return res;
    }

}